________________________________________________________________________
Macintosh Sample Code

#14: CPlusTESample

by Andrew Shebanow

Versions:		1.00 					04/89

Components:		CPlusTESample.make		April 1, 1989
				TApplicationCommon.h	April 1, 1989
				TApplication.h			April 1, 1989
				TDocument.h 			April 1, 1989
				TECommon.h				April 1, 1989
				TESample.h				April 1, 1989
				TEDocument.h			April 1, 1989
				TApplication.cp 		April 1, 1989
				TDocument.cp			April 1, 1989
				TESample.cp 			April 1, 1989
				TEDocument.cp			April 1, 1989
				TESampleGlue.a			April 1, 1989
				TApplication.r			April 1, 1989
				TESample.r				April 1, 1989
________________________________________________________________________

CPlusTESample is an example application that demonstrates
how to initialize the commonly used toolbox managers,
operate successfully under MultiFinder, handle desk
accessories and create, grow, and zoom windows. The
fundamental TextEdit toolbox calls and TextEdit autoscroll
are demonstrated. It also shows how to create and maintain
scrollbar controls. 

This version of TESample has been substantially reworked in
C++ to show how a "typical" object oriented program could
be written. To this end, what was once a single source code
file has been restructured into a set of classes which
demonstrate the advantages of object-oriented programming.
________________________________________________________________________

There are four main classes in this program. Each of these
classes has a definition (.h) file and an implementation
(.cp) file. 

The TApplication class does all of the basic event handling
and initialization necessary for Mac Toolbox applications.
It maintains a list of TDocument objects, and passes events
to the correct TDocument class when apropriate.

The TDocument class does all of the basic document handling
work. TDocuments are objects that are associated with a
window. Methods are provided to deal with update, activate,
mouse-click, key down, and other events. Some additional
classes which implement a linked list of TDocument objects
are provided.

The TApplication and TDocument classes together define a
basic framework for Mac applications, without having any
specific knowledge about the type of data being displayed
by the application's documents. They are a (very) crude
implementation of the MacApp application model, without the
sophisticated view heirarchies or any real error handling.

The TESample class is a subclass of TApplication. It
overrides several TApplication methods, including those for
handling menu commands and cursor adjustment, and it does
some necessary initialization. Note that we only need to
override

The TEDocument class is a subclass of TDocument. This class
contains most of the special purpose code for text editing.
In addition to overriding most of the TDocument methods, it
defines a number of additional methods which are used by
the TESample class to get information on the document
state. 
